/*
 * @Author: LSC
 * @Date: 2021-04-22 12:09:48
 * @LastEditTime: 2021-05-12 16:06:56
 */
import Vue from 'vue'

import Cookies from 'js-cookie'

import 'normalize.css/normalize.css' // a modern alternative to CSS resets

import Element from 'element-ui'
import './styles/element-variables.scss'

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import i18n from './lang' // internationalization
import './icons' // icon
import './permission' // permission control
import './utils/error-log' // error log

import * as filters from './filters' // global filters
import storage from '@/utils/storage'
import dayjs from 'dayjs'
// import 'lib-flexible/flexible.js'
/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

Vue.use(Element, {
  size: Cookies.get('size') || 'medium', // set element-ui default size
  i18n: (key, value) => i18n.t(key, value)
})

// register global utility filters
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false
Vue.prototype.storage = storage
Vue.prototype.dayjs = dayjs
Vue.prototype.timeWord = (time = dayjs().format("HH:mm:ss MM-DD-YYYY")) => {
  let language = Cookies.get('language') || 'en', resTime;
  const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
  console.log('time111====', time);
  const hms = time.split(" ")[0]
  const M = parseInt(time.split(" ")[1].split("-")[0]) - 1
  const D = time.split(" ")[1].split("-")[1]
  const Y = time.split(" ")[1].split("-")[2]
  if (language == 'en') {
    resTime = hms + ` ` + months[M]
      + ` ` + D + ` ` + Y
  } else {
    resTime = time
  }
  return resTime
}
Vue.prototype.getBase64 = (file) => {
  return new Promise(function (resolve, reject) {
    const reader = new FileReader()
    let imgResult = ''
    reader.readAsDataURL(file)
    reader.onload = function () {
      imgResult = reader.result
    }
    reader.onerror = function (error) {
      reject(error)
    }
    reader.onloadend = function () {
      resolve(imgResult)
    }
  })
}
/**
 * @description:
 * @param {*} str
 * @param {*} frontLen 保留头部位数
 * @param {*} endLen  保留尾部位数
 * @return {*}
 */
Vue.prototype.hiddenText = (str, frontLen, endLen) => {
  var len = str.length - frontLen - endLen
  var xing = ''
  for (var i = 0; i < len; i++) {
    xing += '*'
  }
  return (
    str.substring(0, frontLen) + xing + str.substring(str.length - endLen)
  )
}
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
